1. Technical Field
The present invention pertains generally to data storage management, and relates more particularly to dynamic data storage repartitioning.
2. Background of the Invention
Data storage space within a mass storage device is not homogeneous, and the region of a device within which data is stored may determine the performance characteristics of accessing that data. FIG. 1 depicts data storage regions on a disk, an exemplary mass storage device. The outer regions of a disk (that are furthest from the spindle 125) provide higher performance data access than the inner regions (that are closer to the spindle 125) because the disk circumference is greater towards the disk's outer edge. Tracks within a disk outer region enable higher data transfer rates (e.g., faster reads) because of their greater speed and bandwidth.
The storage space on a disk may be divided into multiple regions (partitions). FIG. 1 illustrates an exemplary two partition disk storage space layout, in which the disk storage space has been divided into an outer partition 110 and an inner partition 120 that share a static partition boundary 135. Data 115 have been stored in both partitions, and the portion of the disk that does not contain allocated data (free space 130) is distributed between both partitions. Different types of data and/or file systems may be stored within the different partitions of a disk based on matching different performance requirements of the data to the different performance characteristics of the partitions.
The choice of the disk partition sizes should be carefully considered when choosing a disk space layout, because the relative sizes of the partitions are fixed while the amount and type of stored data may change over time. If a partition becomes filled (i.e., there is no more available free space 130 within the partition), increasing the size of the partition requires statically repartitioning the disk space by relocating the partition boundary 135 after either adding additional system storage space (e.g., adding a new disk drive) or changing the relative sizes of the disk partitions on the existing disk. Static repartitioning of disk space has high resource and system performance costs, since the stored data typically are transferred to temporary storage and then reallocated to the newly created partitions. Reallocation may not be possible for certain kinds of stored data, and this type of operation impacts system performance. Since reallocation typically is performed offline, it also impacts system availability.